1. Field of the Invention
The invention generally relates to event processing on resource-constrained devices, such as cellular telephones or other portable handheld devices, in wireless environments. More particularly, the invention relates to managing data streams for sensors communicating with mobile devices to promote power conservation and system efficiency. This application is a continuation of U.S. patent application Ser. No. 12/827,118, filed Jun. 30, 2010, now U.S. Pat. No. 8,615,597.
2. Description of Related Art
Over the years, portable client devices have evolved from basic portable telephones and pagers to multi-function wireless 3G or 4G machines. Different applications can leverage the varied resources of a given client device, including embedded or remote sensors, to provide a robust platform that may, for instance, enable user heart rate analysis or other monitoring functions.
Many applications of sensor networks involve on-line (near real-time) analysis of multiple sensor-generated event streams of data provided to a client device. Often, stream analysis is performed using high-end server platforms, where energy efficiency of the computing process is not a significant concern as servers can be easily scaled “up” and/or “out”. Moreover, known solutions are frequently geared towards infrastructure (e.g., analysis of stock feeds from Web sites or financial transactions) where the data stream sources have no significant energy bottlenecks, the communication link between the data source and the analysis engine has sufficient bandwidth, the sources simply “push” the data out to the computing engine, and the cost of pushing the data is often assumed to be minimal.
In the past, there have been various attempts at stream query optimization. For instance, queries can be formulated as a collection of database-oriented operators such as sliding-window joins, projections and selections occurring over sequences of “tuples,” where each tuple sequence is an independent stream. For processing of stream-oriented data, such queries are often represented as an operator graph, with the output of upstream query operators becoming the input to a downstream query operator. A number of optimization approaches focus on reordering the sequence in which the operators are applied on incoming data tuples or changing the locations at which different operators are applied, for either reducing the processing computational load or increasing the processing throughput. Such schemes may perform more selective operations (those that eliminate a greater fraction of the non-relevant incoming data tuples) first, before applying less selective operations. Likewise, page-oriented processing techniques for database query processing focus on evaluating groups of tuples arriving as a batch, rather than processing each tuple individually. However, these schemes do not consider variable costs and constraints associated with the acquisition of these data tuples, nor do they use these costs and constraints as inputs to the process of rearranging the sequence of data acquisition and evaluation.
One known approach to the problem of stream processing in sensor networks involves the use of a statistical model to capture the contribution of an individual sensor's data to resolve the query predicate (criterion evaluation). This approach then uses the model to determine the sequential order in which tuples from different sensor streams are evaluated. However, this approach may only focus on snapshot (or one-off) queries, where the data elements for each instance of the query must be explicitly acquired through a polling process, and thus does not consider any temporal statistics of an individual stream.
However, such applications employing known methods for stream processing on mobile devices may result in unacceptably high communication-related energy overheads, and may thus result in limited operational lifetimes of both the sensors transmitting the data streams and the mobile devices themselves.